两个月重度使用 AI Code Agent:普通一线程序员的思考和感想
写在刚开始
我最近两个月一直没写博客,因为开了一个新坑,业余时间忙着搞自己的开源小项目,更具体一点的话,是一个调试跟踪工具 ghostscope。不过,我这里倒不是想围绕这个开源项目本身展开太多讨论,我更想聊一聊,我在高强度使用了 Claude Code 以及 Codex 这两个 Code Agent 工具之后,一些个人思考和心得体会。因为确实有被震撼到,心里有点兴奋、也有点空虚迷茫、当然也有点开心,特别想写一些东西来记录一下。
在正式开始之前,我想说的一点是,在全面拥抱 AI 的潮流下,我没有像很多人去积极学习 AI 或者大模型的底层原 理,希望着能够快速切换到 AI 相关的工作赛道。主要是我有自己喜欢的技术方向,并且还存在不少的进步空间😂,所以一直没有特别去投入精力去学习 AI 大模型领域的专业知识,但这些并不妨碍我去主动使用 AI 相关的工具,去提升我的工作和学习过程中的幸福感。
所以,这里接下来讨论,完全是从一个非 AI 领域从业者的视角出发,完全不涉及 AI Agent 以及 LLM 原理的分析,只是一个熟练的搬砖工人,下班之后,打累了游戏,想顺带聊聊自己在使用这些 AI 工具之后的一些思考和感悟。也许在 AI 迅猛发展的今天,我这些个人思考和感悟很快就会过时😁,但是在未来,回过头再去看自己当时的感悟心得,我觉得也是一件非常有意思的事情。
对 AI Coding 新的认知
我记得我刚毕业的时候,我老板夸过我,出活比较快,而且写的代码像模像样的(汗,好多年前被夸了一句,我能记到现在,哈哈)。我记得我当时还特地复盘了一下,我为什么能做到这些(比起故障 review,我更喜欢 review 自己的正面事迹,来放大自己的优势)。
出活快的话,是因为我刚毕业,当时每个周末都在主动加班,不快就见鬼了😈。至于代码写的像模像样,我当时做的是 nginx 的 C 模块开发。因为优秀的 nginx 三方模块代码特别多,我每次在工作中要实现的很多功能点,本质上都是到处“借鉴”大佬们写的代码,我自己修修改改,做一做胶水和测试工作,代码就能健壮的跑起来了。所以,我老板在 review 我代码的时候,其实是在 review 很 多大佬们的智慧结晶😉。当我悟透这一点之后,我开始重度使用 code snippet 工具,记录下我读到过,写的很好的代码样例,来加速我搬砖的效率。
是的,之所以回忆这个事情,是因为我想“炫耀”一下,我在刚入行的时候,就领悟了写代码的本质😂: Ctrl + c 和 Ctrl + v,当然更准确的说,是知道在哪里 Ctrl + c,知道去哪里 Ctrl + v,并且能为功能的正确性兜底。我在刚接触到 Copilot 早期版本的时候,我一直觉得这是一个更高级的 code snippet 工具罢了。但是,chatGPT 出来之后,感觉很短的一段时间,AI 生成代码越来越流行,我大概是去年开始尝试使用 Cursor 和 Vscode Copilot 等工具来辅助编写代码,结结实实被 Cursor 的易用性给圈粉了,相比较而言,当时 Copilot 使用体验就差很多(不过最近一年 Copilot 体验开始追赶上来一些)。
虽然 Cursor 非常好用,也非常智能,但是我一直没有摆脱最早的一个固定思维,就是这只是一个加强版的 code snippet,具备 chatGPT 的能力,某种意义上具备了 stackoverflow 的功效,但是并没有翻天覆地的改变。当然,我现在这么说可能对 Cursor 不是很公平,考虑到我已经比较长一段时间没有使用 Cursor 了。
但是,在我最近两个月高强度使用了 Claude Code 和 Codex 之后,我发现 Code Agent 命令行工具整体上在任务的完成度和准确性上有了巨大的提升,基本上可以说是翻天覆地的变化。这一切,完全改变了我对 AI Coding 的看法,在这里,我直接抛出我版本更新后的观点:
AI 生成代码不仅仅只适合用于 POC 项目或者从零到一,在后续主流的开发中,AI Code Agent 大概率要全面接管代码生成,以后手写高级语言代码,就像是现在手写汇编一样,变成古法编程了(有存在的必要,但是越来越少见)
这里澄清一个点,我从来不是技术无用论的推崇者,其实,我蛮反感天天嚷嚷技术无用论的人,一般来说,说一件东西没用,前提是你得有这个东西,如果是想强调业务的重要性或者商业上的价值,更没有必要捧一踩一。这话大佬说一说,凡尔赛一下,我们普通人笑一笑听一听也就过去了,我们不能好的东西没在大佬身上学到,不好的东西倒是学的飞起。
但我觉得这并不意味着程序员要被淘汰了,也不是程序员的工作会越来越轻松了,相反我觉得是对程序员的要求变得更高了。
当我和我同事分享了我的最新想法的时候,有人还提出了另外一个问题:Cursor 和 Claude Code 或者 Codex 命令行工具相比,使用的模型基本是一致的,既然模型能力上没有太大的差距,为什么在使用体验上差距会那么大。我第一时间并没有想到特别好的答案,想到一些模棱两可的回答,但是甚至说服不了我自己,比如说命令行 Code Agent 更容易获取到项目的上下文,或者说使用方式上命令行可能更直观?
直到我读到了这篇文章(从 ChatGPT 到 AI Agent,一文讲透 Agent 的底层逻辑),我大概有点明白了,模型能力没有变化,变化的是使用的方式,赋予模型结构化思考和获取真实反馈的能力,才是挖掘模型能力的最佳使用方式。说的更直白一些,把 AI Agent 当做技术团队中的一个成员来看待,配合着他把复杂的任务进行拆分,做规划,并且告诉他任务完成的标准是什么,遇到问题哪里可以获取解决问题的信息。所以,我接下来会详细描述我关于这一块的一些思考:
像管理技术团队一样来使用 AI Code Agent,即人人都是技术架构师
人人都是技术架构师
考虑到一个 Code Agent 就是一个合格的研发工程师,那么,现在流行多 Agent 的使用方式,不就是一个人带领一个小型研发技术团队,那么我们应该怎么做好架构师的工作。
建立信任,做好分工
其实,我第一时间想到的是架构师最核心的技能,是证明自己技术团队或者正在主导项目的价值,让别人 buy-in。但是这个就有点偏离了这篇博客的主题了,毕竟我们只是“领导”虚拟的 AI 军团干活,而不是真正带一个技术团队。
接下来我想到的核心能力,我觉得也很微妙,那就是和自己技术团队建立信任关系。这也是我之前有一任老板在和我 one one 时候聊到的,职场最重要的是什么,无疑是人与人相互之间的信任,特别是和自己 +1 的信任关系。对于这种信任关系,最好的状态是老板把事情交给你,是知道并且相信你能做好,而你也完全清楚老板想要什么,并且还有把握给老板一些期望之外的惊喜。但这样的信任不仅仅是建立的时候困难,长期维护起来也需要付出非常多的心血。
当然,在使用 AI 工具上面,这样的信任关系,更侧重于